def fib(t):
    n, a, b = 0, 0, 1
    while n < t:
        yield b
        # 函数是顺序执行，遇到return语句或者最后一行函数语句就返回。而变成generator的函数，在每次调用next()
        # 的时候执行，遇到yield语句返回，再次执行时从上次返回的yield语句处继续执行。
        a, b = b, a + b
        n += 1
    return 'done'


v = fib(5)
print(v)
for q in v:
    print(q)
